Often, computer systems consist of multiple components or elements hosted by different machines. System components usually communicate over a network. Often, communication between two components of the same system requires secure channels that guarantee confidentiality, integrity and mutual authentication. Various methods of accomplishing this are utilized and include, but are not limited to, a secured sockets layer/transport layer security (SSL/TLS) protocol. SSL/TLS is supported by a wide range of technologies such as: Java 2 Enterprise Edition (J2EE) application servers or Microsoft Internet Information Server (MS IIS). However, in the case of SSL/TLS, each component of the system should trust each other's components certificate in order to communicate.
In the case of SSL/TLS, a special initialization step is required to ensure that each component in the system trusts the other component's certificates.
More generally, many secure channel protocols require a special initialization step that guarantees that all system components have necessary authentication attributes such as certificates or user names/passwords, among others, that are necessary for communication.